//
//  LWMainTabBarController.swift
//  Swift-WeiBo
//
//  Created by 刘伟 on 16/7/9.
//  Copyright © 2016年 LWSpro. All rights reserved.
//

import UIKit
import SVProgressHUD

class LWMainTabBarController: UITabBarController {

    override func viewDidLoad() {
        super.viewDidLoad()

        //设置选中时的文字和图片颜色
        LWTabBar.appearance().tintColor = UIColor.orangeColor()
       
        
        let lwTabbar = LWTabBar()
        
        // kvc给只读属性赋值
        setValue(lwTabbar, forKey: "tabBar")
        
        //实现闭包  即按钮的点击事件 [weak self] 防止循环引用
        lwTabbar.clickButtonClosure = { [weak self] in
            
            //按钮的点击事件在这里面实现
            //如果没有登录 那么提醒用户登录  记住 取反才是没有登录
            if !LWUserAccountViewModel.sharedUserAccount.isLogin {
                
                SVProgressHUD.showErrorWithStatus("请先登录,亲~")
                
                //提醒结束  不让执行后面的代码
                return
                
            }
            
            
            //解包
            if let weakSelf = self {
                
                //  代码执行到此表示已经登录
                let composeView = LWComposeView()
                //  获取最上面的一个window  防止有键盘弹出来的时候 会出现keyWindow获取错误
                
                //添加到父控件上  并且将控制器传回去
                composeView.show(weakSelf)
                
                
            }
            
            
        }
        
        
        
        //创建子控制器
        addChildViewController(LWHomeTableViewController(), title: "首页" , imageName: "tabbar_home")
        
        addChildViewController(LWMessageTableViewController(), title: "消息" , imageName: "tabbar_message_center")
        
        addChildViewController(LWDiscoverTableViewController(), title: "发现" , imageName: "tabbar_discover")
        
        addChildViewController(LWProfileTableViewController(), title: "我的" , imageName: "tabbar_profile")
        
        
    }

    
    
    //MARK: - -创建子控制器
     func addChildViewController(childController: UIViewController, title: String, imageName: String) {
   
        //使用自定义的tabBarItem
        childController.tabBarItem = LWTabBarItem()
        
        
        
        
        //设置文字
        childController.title = title
        
        //设置tabBarItem 的图片
        childController.tabBarItem.image = UIImage(named: imageName)
        
        //选中状态的图片
        childController.tabBarItem.selectedImage = UIImage(named: imageName + "_selected")
        
        /*
        
          这是更改渲染模式 让文字和图片的颜色改变的  但是还有一个统一的 设置方法  如下
        
         越早执行约好, 一般会放到appDelegate里面
        
        UITabBar.appearance().tintColor = UIColor.orangeColor()
        
        */
        
//        //可以更改图片的渲染模式
//        childController.tabBarItem.selectedImage = UIImage(named: imageName + "_selected")?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)
//        
//        //设置tabbar字体颜色 字体大小
//        childController.tabBarItem.setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.orangeColor(), NSFontAttributeName: UIFont.systemFontOfSize(14)], forState: UIControlState.Selected)
//        
        //设置字体大小
        childController.tabBarItem.setTitleTextAttributes([NSFontAttributeName: UIFont.systemFontOfSize(14)], forState: .Normal)
        
        //添加子视图控制器
        let nav = UINavigationController(rootViewController: childController)
        
        //将导航控制器添加到当前控制器中
        addChildViewController(nav)
        
    }
    
    
  
}
